Image data is typically provided to a printing system in the form of RGB data files that describe the color of each pixel of the image in terms of an amount of each of the additive primary colors (red, green and blue). For each of the three primary colors, 256 levels (8 bits) per pixel are generally provided to specify the amount.
Printing systems typically print with the subtractive colors cyan, magenta and yellow, and optionally black. Thus, image data needs to be converted from ROB color space to CMYK color space. In addition, many types of printing systems, such as inkjet printers, provide discrete dots of color in specified locations on paper or other recording medium. In binary printing, a dot of cyan, magenta, yellow or black is either printed in a given pixel location or not. In multi-pass printing, it is possible to print more than one dot of a particular color at a particular location. Additionally, some printers are capable of printing with inks of different densities (e.g. light cyan and dark cyan) or different dot sizes. In any case, the available number of colorant levels per dot location on the printed page is typically fir less than the 256 levels per primary color provided in the input image data. Furthermore, the number of pixels in an input data image might be on the order of a few million. The number of available dot locations for a printing system depends on both the printing resolution and the size of the recording medium. For an image printed by a desktop printer, the number of dot locations can be on the order of a hundred million. For an image printed by a wide format printer, the number of dot locations can be more than an order of magnitude larger. Thus, the image data must be scaled for the number of output pixels and halftoned or multitoned so that the large number of discrete dots of color on the recording medium adequately represent the intended appearance and color levels of the image.
For printing systems controlled by a host computer, some image processing tasks are performed in the printer driver of the host computer and some image processing tasks are performed in an image processing unit of the printing system. Especially for printing applications where the amount of printing data is very large, i.e. for high resolution or large size images or multiple densities of ink or multiple dot sizes, image rendering and transfer of the data to the printing system is not sufficiently fast. This can result in long wait times for image spooling prior to printing, or pauses during the printing process that can cause degradation in print quality. Printing delays can also occur in printing systems operating in a standalone mode where the image processing is all done within the printing system.
As is known in the art, a more efficient way of processing image data, rather than rendering the image at full printing resolution, is to first multitone the image at a lower resolution than the fall printing resolution, but at a higher number of multitone levels than the number of levels that the printing system is capable of printing. The compressed image data is then decoded using the higher number of multitone levels to specify a dot matrix pattern or superpixel to expand the image to full printing resolution.
Although such printing resolution expansion methods are known for compressed image data for the case where all printed dots for a particular color are substantially the same size, what has not been heretofore available is a method for expanding image data to full printing resolution for printing systems capable of selectably printing dots of a particular color with more than one dot size. In order to provide good image quality, efficient image data handling, and a well-controlled printing process, the method for data expansion needs to take into consideration characteristics of the printing process itself when expanding image data for the case where dots of substantially the same color can be printed in different sizes.